Object-based application modules operate on objects that represent data sets stored at relational data stores. Because data sets represented as objects are stored within a memory of an application module differently as compared to the storage of those data sets within a relational data store, an impedance or format mismatch exists between objects and storage of data sets within relational data stores. For example, data sets represented as objects are typically stored hierarchically and data sets within a relational data store are typically stored in flat tables. This mismatch can be referred to as an object-relational impedance mismatch. Thus, the data sets as stored at the relational data store are converted to objects before such data sets are useful at object-based application modules.
Due to complications in converting data sets stored at relational data stores to objects that arise from the object-relational impedance mismatch and tradeoffs between data consistency, storage space efficiency, and access performance at relational data stores, various strategies have been employed to improve the performance of object-relational mapping software modules (or object mapping modules) that convert data sets from a native format of a relational data store to a native format of object. For example, data caching and lazy fetching (i.e., delaying requests for some elements of an object stored at a relation data store until access for those specific elements of the objects is requested) have been employed to mitigate the effects of object-relational impedance mismatch and tradeoffs between storage space efficiency and access performance at a relational data store.
Such strategies, however, are often ineffective for application modules in which an object is not frequently accessed or a complete representation of the object is required when the object is initially requested as in, for example, a web services application. Moreover, such strategies can be ineffective within environments in which multiple applications that access separate caches store and/or modify data stored within a relational data store. Because object-based application modules are becoming increasingly common, efficient object mapping modules are desirable.